Many computers, televisions, and other equipment use on screen displays (OSDs) to display and adjust parameters related to the equipment. For example, OSDs may visually represent the level of volume, contrast, brightness, vertical position, horizontal position, and the like. While the user is adjusting the parameter, the OSD provides visual feedback to the user relating to the adjustment they are performing.
One common method of visual feedback employed in OSDs is to generate a bar indicator to show a parameter's level. A bar indicator typically shows the range of adjustment the parameter may be adjusted within as well as the current value of the parameter. For example, a bar indicator may be used to display a volume parameter.
A common technique for displaying a bar indicator within an OSD is to display characters on a display screen of the equipment. Such an OSD system is referred to as a character based system. In such an OSD system, several characters are typically used to represent portions of the OSD. For example, some characters are used to represent a background and several different characters are used to represent segments of a bar indicator. One such prior art system is illustrated in FIGS. 1A-1C.
FIG. 1A illustrates a prior art bar indicator. As shown in the figure, the bar indicator has a range between 0 and 255 and utilizes twelve separate characters (C1-C12) to represent the range. Within this particular example, the bar indicator is set at approximately 135 out of 255.
As can be seen by referring to FIG. 1A, each character represents a fraction of the bar indicator. In this particular example, each character represents {fraction (1/12)} of the bar indicator.
FIG. 1B shows ten different icon characters each representing a different level. According to the present example, icon 1 shows all of the pixels within the character filled, representing a full bar indicator. Icon 2 shows 90% of the character filled. Icon 3 shows 80% of the character filled. Icon 4 shows 70% of the character filled. Icon 5 shows 60% of the character filled. Icon 6 shows 50% of the character filled. Icon 7 shows 40% of the character filled. Icon 8 shows 30% of the character filled. Icon 9 shows 20% of the character filled, and icon 10 shows 10% of the character filled. The icons are selected based on the value of the parameter to be displayed by the bar indicator.
FIG. 1C shows the bar indicator characters spaced sufficiently to indicate the individual characters comprising the bar indicator. As shown in the figure, the bar indicator is made up of twelve separate characters (C1-C12). To facilitate the effect of a moving bar indicator, a microcontroller runs a firmware routine that takes the parameter value, as the ratio of the maximum value, and finds the closest number of whole characters and remaining pixels that fall over to another character within the bar indicator. For illustration, suppose the parameter value displayed by the bar indicator is 135, and the bar graph is composed of 12 character segments, each segment being 12 pixels wide. In order to display the bar indicator the appropriate size, the microcontroller illuminates the left most pixels of the indicator according to the following formula: Illuminated pixels=135/256*12 segments*12 pixels=76 pixels. According to the present example, seventy-six pixels should be illuminated to show a parameter value of 135.
Seventy-six pixels can be illuminated by the following method. First, an icon filled 100% (See icon 1 in FIG. 1B) is chosen for the first six characters in the bar indicator (6*12=72 pixels). Second, an icon that is closest to having four out of the twelve pixels illuminated in one color, and the remaining eight in another background color is chosen. Third, the final five characters remaining of the bar indicator are chosen such that they are in the background color and are not filled.
As can be seen by the above example, the microcontroller converts the value of the parameter to a bar indicator. In order to achieve this, the microcontroller determines each character to place within the bar indicator to show the parameter.
When the bar indicator is at its maximum value, the microcontroller places solidly colored icons in each character position of the bar indicator. When partial values need to be converted a burden is placed on the microcontroller. The microcontroller slices the icon into fragments and then chooses the character based on the desired size of the bar. The microcontroller also has to decide what remnant is left and then use the character remnant. This requires a large amount of overhead on the microcontroller.
The calculation to determine the characters required for displaying the bar the appropriate size requires significant mathematical computation. Moreover, the calculations are often performed by low power microcontrollers using extensive look-up tables. The firmware to provide this feature is quite large, takes up significant ROM space, and uses significant computation power.